package cn.wolfcode.mapper;

import cn.wolfcode.domain.Role;
import cn.wolfcode.result.QueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: 角色表实体类
 * @Author: 伍家钰
 * @Date: 2020/7/11 19:09
 * @Version: 1.0
 */

public interface RoleMapper {
    /**
     * 根据id删除数据
     *
     * @param id:用户传的id值
     * @return :返回受影响行数
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 保存数据
     *
     * @param record :用户传入要保存的对象
     * @return : 返回受影响行数
     */
    int insert(Role record);

    /**
     * 根据id查询数据
     *
     * @param id :用户传入要查询的id值
     * @return :返回查询出的Role对象
     */
    Role selectByPrimaryKey(Long id);

    /**
     * 查询表中所有的Role对象
     *
     * @return :返回查询出的Role对象集合
     */
    List<Role> selectAll();

    /**
     * 跟据id修改数据
     *
     * @param record:用户传入的新对象数据
     * @return :返回受影响行数
     */
    int updateByPrimaryKey(Role record);

    /**
     * 高级查询,查询数据总条数
     *
     * @param qo :用户传入的查询条件对象
     * @return :返回数据总条数
     */
    int selectCount(QueryObject qo);

    /**
     * 查询当前页符合条件的结果集
     *
     * @param qo:用户传入的查询条件对象
     * @return :返回表中查询对象得结果集
     */
    List<Role> selectForList(QueryObject qo);

    void insertRelation(@Param("roleId") Long roleId, @Param("permissionId") Long permissionId);

    void deleteRelation(Long id);

     List<Role> selectRoleById(Long id);

    List<String> selectSnsByEmployeeId(Long id);
}